CC "Modeling" GET_ACT_MODEL SET nActModelId: (modelid) CC "Modeling" DESELECT_ALL #Find Start Stimulus CC "AQL" EVAL_AQL_EXPRESSION expr: (("<\"Start Stimulus\">")) modelid: (nActModelId) SET sSSobjectIds: (objids) #CC "Modeling" SELECT objid: (VAL sSSobjectId) #Get Occurrence #GET_OCCURANCE sObjid:(sSSobjectId) result: nOccr CC "AdoScript" EDITFIELD caption:"Number of Occurrences" title: "Enter Number of Occurrences" text:"1" IF (ecode = 0) { SET sOccrs: (text) SET_FOR_OCR_CHARTS sOcr: (sOccrs) CLEAN_TOTAL_COSTS_AND_REVENUES_AND_PROFITS FOR nOccr from: 0 to: (VAL sOccrs) { FOR sSSobjectId in: (sSSobjectIds) { CC "Core" GET_ATTR_VAL objid:(VAL sSSobjectId) attrname:"Name" SET sSSObjName:(val) #Find Next and set Occurrences #CC "AdoScript" PERCWIN_CREATE title: ("Occurrences for each node are being calculated, please wait...") with-cancel-button GET_NEXT_AND_SET_OCCURRANCE sObjid:(sSSobjectId) nInitialOccurance: (nOccr) #CC "AdoScript" PERCWIN_SET percentage:(100) #CC "AdoScript" PERCWIN_DESTROY } #CC "AdoScript" PERCWIN_CREATE title: ("Total Variable Expenses for each Value Interface are being calculated, please wait...") CALCULATE_VARIABLEEXPENSES_OF_ALL_VALUEINTEFACES #CC "AdoScript" PERCWIN_SET percentage:(100) #CC "AdoScript" PERCWIN_DESTROY #CC "AdoScript" PERCWIN_CREATE title: ("Total Incoming Valuation for each Value Interface are being calculated, please wait...") CALCULATE_INCOMING_VALUATION_OF_ALL_VALUEINTEFACES #CC "AdoScript" PERCWIN_SET percentage:(100) #CC "AdoScript" PERCWIN_DESTROY #CC "AdoScript" PERCWIN_CREATE title: ("Total Outgoing Valuation for each Value Interface are being calculated, please wait...") CALCULATE_OUTGOING_VALUATION_OF_ALL_VALUEINTEFACES #CC "AdoScript" PERCWIN_SET percentage:(100) #CC "AdoScript" PERCWIN_DESTROY #CC "AdoScript" PERCWIN_CREATE title: ("Total Valuation Balance for each Value Interface are being calculated, please wait...") CALCULATE_VALUATION_BALANCE_OF_ALL_VALUEINTEFACES #CC "AdoScript" PERCWIN_SET percentage:(100) #CC "AdoScript" PERCWIN_DESTROY CALCULATE_TOTAL_VARAIBLE_COST_FOR_ALL_ACTORS nOccrruence: (nOccr) CALCULATE_TOTAL_COST_FOR_ALL_ACTORS #CC "AdoScript" SLEEP ms: 20 CALCULATE_TOTAL_REVENUE_FOR_ALL_ACTORS nOccrruence: (nOccr) CC "AdoScript" SLEEP ms: 20 FREE_OCCURRANCES_FLAGS } CALCULATE_PROFIT_FOR_ALL_ACTORS } PROCEDURE GET_OCCURANCE sObjid: string result: reference { CC "Core" GET_ATTR_VAL objid: (VAL sSSobjectId) attrname:"Occurrences" SET result: (val) } PROCEDURE CALCULATE_VARIABLEEXPENSES_OF_ALL_VALUEINTEFACES { CC "AQL" EVAL_AQL_EXPRESSION expr: ("<\"Value Interface\">") modelid: (nActModelId) SETL sValueInterfaceObjids:(objids) FOR sValueInterfaceObjid in:(sValueInterfaceObjids) { #CC "Modeling" SELECT objid: (VAL sValueInterfaceObjid) CC "Core" GET_ATTR_VAL objid: (VAL sValueInterfaceObjid) attrname: ("Variable Expenses") SETL nVExps: (val) CC "Core" GET_ATTR_VAL objid: (VAL sValueInterfaceObjid) attrname: ("Occurrences") SETL nOccr: (val) SETL nTotalVariableExpense: (nVExps*nOccr) CC "Core" SET_ATTR_VAL objid: (VAL sValueInterfaceObjid) attrname: ("Total Expenses") val: (nTotalVariableExpense) } } PROCEDURE CALCULATE_INCOMING_VALUATION_OF_ALL_VALUEINTEFACES { CC "AQL" EVAL_AQL_EXPRESSION expr: ("<\"Value Interface\">") modelid: (nActModelId) SETL sValueInterfaceObjids:(objids) FOR sValueInterfaceObjid in:(sValueInterfaceObjids) { CC "Core" GET_ATTR_VAL objid: (VAL sValueInterfaceObjid) attrname: ("Name") SETL sVIname: (val) CC "AQL" EVAL_AQL_EXPRESSION expr: ("{\""+sVIname+"\"}<-<\"value exchange\">") modelid: (nActModelId) SETL sInVExIds: (objids) SETL nTotalIncomingValuation:0 FOR sInVExId in: (sInVExIds) { CC "Core" GET_ATTR_VAL objid: (VAL sInVExId) attrname: ("Incoming Valuation") SETL nTotalIncomingValuation: (nTotalIncomingValuation+val) } CC "Core" GET_ATTR_VAL objid: (VAL sValueInterfaceObjid) attrname: ("Occurrences") SETL nOccr: (val) SETL nTotalIncomingValuation:(nTotalIncomingValuation*nOccr) CC "Core" SET_ATTR_VAL objid: (VAL sValueInterfaceObjid) attrname: ("Total Incoming Valuation") val:(nTotalIncomingValuation) } } PROCEDURE CALCULATE_OUTGOING_VALUATION_OF_ALL_VALUEINTEFACES { CC "AQL" EVAL_AQL_EXPRESSION expr: ("<\"Value Interface\">") modelid: (nActModelId) SETL sValueInterfaceObjids:(objids) FOR sValueInterfaceObjid in:(sValueInterfaceObjids) { #CC "Modeling" SELECT objid: (VAL sValueInterfaceObjid) CC "Core" GET_ATTR_VAL objid: (VAL sValueInterfaceObjid) attrname: ("Name") SETL sVIname: (val) CC "AQL" EVAL_AQL_EXPRESSION expr: ("{\""+sVIname+"\"}-><\"value exchange\">") modelid: (nActModelId) SETL sInVExIds: (objids) SETL nTotalOutgoingValuation:0 FOR sInVExId in: (sInVExIds) { CC "Core" GET_ATTR_VAL objid: (VAL sInVExId) attrname: ("Outgoing Valuation") SETL nTotalOutgoingValuation: (nTotalOutgoingValuation+val) } CC "Core" GET_ATTR_VAL objid: (VAL sValueInterfaceObjid) attrname: ("Occurrences") SETL nOccr: (val) SETL nTotalOutgoingValuation:(nTotalOutgoingValuation*nOccr) CC "Core" SET_ATTR_VAL objid: (VAL sValueInterfaceObjid) attrname: ("Total Outgoing Valuation") val:(nTotalOutgoingValuation) } } PROCEDURE CALCULATE_VALUATION_BALANCE_OF_ALL_VALUEINTEFACES { CC "AQL" EVAL_AQL_EXPRESSION expr: ("<\"Value Interface\">") modelid: (nActModelId) SETL sValueInterfaceObjids:(objids) FOR sValueInterfaceObjid in:(sValueInterfaceObjids) { #CC "Modeling" SELECT objid: (VAL sValueInterfaceObjid) CC "Core" GET_ATTR_VAL objid: (VAL sValueInterfaceObjid) attrname: ("Total Incoming Valuation") SETL nTotalInVal: (val) CC "Core" GET_ATTR_VAL objid: (VAL sValueInterfaceObjid) attrname: ("Total Outgoing Valuation") SETL nTotalOutVal: (val) SETL nTotalValBalance: (nTotalInVal-nTotalOutVal) CC "Core" SET_ATTR_VAL objid: (VAL sValueInterfaceObjid) attrname: ("Total Valuation Balance") val:(nTotalValBalance) } } PROCEDURE GET_NEXT_AND_SET_OCCURRANCE sObjid: string nInitialOccurance: integer { CC "Core" GET_CLASS_ID classname: ("OR") SETL nOrClassId: (classid) CC "Core" GET_ATTR_VAL objid: (VAL sObjid) attrname: ("Name") SETL sObjName: (val) CC "AQL" EVAL_AQL_EXPRESSION expr: ("({\""+sObjName+"\"}-><\"dependency\"> ) OR ({\""+sObjName+"\"}-><\"value exchange\">)") modelid: (nActModelId) SETL sConnectorIds:(objids) IF (sConnectorIds !="") { FOR sConnectorId in: (sConnectorIds) { CC "Core" GET_ATTR_VAL objid: (VAL sConnectorId) attrname: ("Fraction") SETL nFraction:(val) CC "Core" GET_CONNECTOR_ENDPOINTS objid:(VAL sConnectorId) #-->RESULT ecode:intValue fromobjid:id toobjid:id CC "Core" GET_ATTR_VAL objid: (toobjid) attrname:"IsOccurrancesSet" as-string SETL bOcc: (val) IF (bOcc ="no") { CC "Core" GET_CLASS_ID objid: (toobjid) IF (nOrClassId = classid) { CC "Core" debug GET_ATTR_VAL objid: (toobjid) attrname: "Name" SETL sOrObjName: (val) CC "AQL" EVAL_AQL_EXPRESSION expr: ("{\""+sOrObjName+"\"}-><\"dependency\">") modelid: (nActModelId) SETL sOrDepConIds: (objids) SETL nSumFraction:0 FOR sOrDepConId in: (sOrDepConIds) { CC "Core" debug GET_ATTR_VAL objid: (VAL sOrDepConId) attrname: ("Fraction") SETL nSumFraction: (nSumFraction+val) } SETL nLocalOccurance: (nInitialOccurance/nSumFraction) CC "AdoScript" INFOBOX (STR nLocalOccurance) CC "AdoScript" INFOBOX (STR nInitialOccurance) CC "AdoScript" INFOBOX (STR nSumFraction) CC "Core" debug SET_ATTR_VAL objid: (toobjid) attrname:"Occurrences" val:(nLocalOccurance) CC "Core" SET_ATTR_VAL objid: (toobjid) attrname:"IsOccurrancesSet" val:("yes") GET_NEXT_AND_SET_OCCURRANCE sObjid: (STR toobjid) nInitialOccurance: (nLocalOccurance) } ELSE { SETL nLocalOccurance: (nInitialOccurance*nFraction) CC "Core" SET_ATTR_VAL objid: (toobjid) attrname:"Occurrences" val:(nLocalOccurance) CC "Core" SET_ATTR_VAL objid: (toobjid) attrname:"IsOccurrancesSet" val:("yes") GET_NEXT_AND_SET_OCCURRANCE sObjid: (STR toobjid) nInitialOccurance: (nLocalOccurance) } } #ELSE #{ #GET_NEXT_AND_SET_OCCURRANCE sObjid: (STR toobjid) nInitialOccurance: (nInitialOccurance) #} } } ELSE { BREAK } } PROCEDURE CALCULATE_TOTAL_VARAIBLE_COST_FOR_ALL_ACTORS nOccrruence: integer { CC "AQL" EVAL_AQL_EXPRESSION expr: ("<\"Actor\">") modelid: (nActModelId) SETL sActorObjids:(objids) FOR sActorObjid in: (sActorObjids) { CC "Core" GET_ATTR_VAL objid: (VAL sActorObjid) attrname: ("Name") SETL sActorName: (val) CC "AQL" EVAL_AQL_EXPRESSION expr: ("{\""+sActorName+"\":\"Actor\"}<-\"Is inside\" >\"Value Interface\"<") modelid: (nActModelId) SETL sVEObjids:(objids) SETL nTotalVariableExpensePerActor:0 FOR sVEObjid in: (sVEObjids) { CC "Core" GET_ATTR_VAL objid: (VAL sVEObjid) attrname: ("Total Expenses") SETL nTotalExpenses: (val) CC "Core" GET_ATTR_VAL objid: (VAL sVEObjid) attrname: ("Total Outgoing Valuation") SETL nTotalOutGoingValuation: (val) SETL nTotalVariableExpensePerActor: ((nTotalVariableExpensePerActor+nTotalExpenses+nTotalOutGoingValuation) } CC "Core" SET_ATTR_VAL objid: (VAL sActorObjid) attrname: ("Total Variable Expenses") val: (nTotalVariableExpensePerActor) } } PROCEDURE CALCULATE_TOTAL_COST_FOR_ALL_ACTORS { CC "AQL" EVAL_AQL_EXPRESSION expr: ("<\"Actor\">") modelid: (nActModelId) SETL sActorObjids:(objids) FOR sActorObjid in: (sActorObjids) { CC "Core" GET_ATTR_VAL objid: (VAL sActorObjid) attrname: ("Total Variable Expenses") SETL nTotalVariableExpenses: (val) CC "Core" GET_ATTR_VAL objid: (VAL sActorObjid) attrname: ("Expenses") SETL nExpenses: (val) CC "Core" GET_ATTR_VAL objid: (VAL sActorObjid) attrname: ("Investment") SETL nInvestment: (val) SETL nTotalCost: (nTotalVariableExpenses+nExpenses+nInvestment) CC "Core" SET_ATTR_VAL objid: (VAL sActorObjid) attrname: ("Total Cost") val: (nTotalCost) CC "Core" GET_ATTR_VAL objid: (VAL sActorObjid) attrname: ("TotalCostArray") SETL initialTotalCostArray: (val) SETL newTotalCostArray: (tokcat ( initialTotalCostArray , (STR nTotalCost) , " " ) ) CC "Core" SET_ATTR_VAL objid: (VAL sActorObjid) attrname: ("TotalCostArray") val: (newTotalCostArray) } } PROCEDURE FREE_OCCURRANCES_FLAGS { CC "AQL" EVAL_AQL_EXPRESSION expr: ("<\"Value Interface\"> OR <\"AND\"> OR <\"OR\"> OR <\"END\">") modelid: (nActModelId) SETL sObjids:(objids) FOR sObjid in: (sObjids) { CC "Core" SET_ATTR_VAL objid: (VAL sObjid) attrname:"IsOccurrancesSet" val:("no") } } PROCEDURE CLEAN_TOTAL_COSTS_AND_REVENUES_AND_PROFITS { CC "AQL" EVAL_AQL_EXPRESSION expr: ("<\"Actor\">") modelid: (nActModelId) SETL sObjids:(objids) FOR sObjid in: (sObjids) { CC "Core" SET_ATTR_VAL objid: (VAL sObjid) attrname:"TotalCostArray" val:("") CC "Core" SET_ATTR_VAL objid: (VAL sObjid) attrname:"TotalRevenueArray" val:("") CC "Core" SET_ATTR_VAL objid: (VAL sObjid) attrname:"TotalProfitArray" val:("") } } PROCEDURE SET_FOR_OCR_CHARTS sOcr: string { CC "AQL" EVAL_AQL_EXPRESSION expr: ("<\"Actor\">") modelid: (nActModelId) SETL sObjids:(objids) FOR sObjid in: (sObjids) { CC "Core" SET_ATTR_VAL objid: (VAL sObjid) attrname:"OcrForChart" val:(sOcr) } } PROCEDURE CALCULATE_TOTAL_REVENUE_FOR_ALL_ACTORS nOccrruence: integer { CC "AQL" EVAL_AQL_EXPRESSION expr: ("<\"Actor\">") modelid: (nActModelId) SETL sActorObjids:(objids) FOR sActorObjid in: (sActorObjids) { CC "Core" GET_ATTR_VAL objid: (VAL sActorObjid) attrname: ("Name") SETL sActorName: (val) CC "AQL" EVAL_AQL_EXPRESSION expr: ("{\""+sActorName+"\":\"Actor\"}<-\"Is inside\" >\"Value Interface\"<") modelid: (nActModelId) SETL sVEObjids:(objids) SETL nTotalRevenuePerActor:0 FOR sVEObjid in: (sVEObjids) { CC "Core" GET_ATTR_VAL objid: (VAL sVEObjid) attrname: ("Total Incoming Valuation") SETL nTotalIncomingValuation: (val) SETL nTotalRevenuePerActor: (nTotalRevenuePerActor+nTotalIncomingValuation) } CC "Core" SET_ATTR_VAL objid: (VAL sActorObjid) attrname: ("Total Revenue") val: (nTotalRevenuePerActor) CC "Core" GET_ATTR_VAL objid: (VAL sActorObjid) attrname: ("TotalRevenueArray") SETL initialTotalRevenueArray: (val) SETL newTotalRevenueArray: (tokcat ( initialTotalRevenueArray , (STR nTotalRevenuePerActor) , " " ) ) CC "Core" SET_ATTR_VAL objid: (VAL sActorObjid) attrname: ("TotalRevenueArray") val: (newTotalRevenueArray) } } PROCEDURE CALCULATE_PROFIT_FOR_ALL_ACTORS { CC "AQL" EVAL_AQL_EXPRESSION expr: ("<\"Actor\">") modelid: (nActModelId) SETL sActorObjids:(objids) FOR sActorObjid in: (sActorObjids) { SETL sTotalProfitArray:"" CC "Core" GET_ATTR_VAL objid: (VAL sActorObjid) attrname: ("TotalRevenueArray") SETL nTotalRevenueArray: (valarray(val)) CC "Core" GET_ATTR_VAL objid: (VAL sActorObjid) attrname: ("TotalCostArray") SETL nTotalCostArray: (valarray(val)) SETL nLen: (LEN nTotalCostArray) FOR i from: 0 to: (nLen-1) { SETL nProfit: (nTotalRevenueArray[i] - nTotalCostArray[i]) SETL sTotalProfitArray: (tokcat (sTotalProfitArray, (STR nProfit), " ")) } CC "Core" SET_ATTR_VAL objid: (VAL sActorObjid) attrname: ("TotalProfitArray") val: (sTotalProfitArray) } }